package org.zachary.imitation.raft;

/**
 * 节点的状态枚举
 *
 * Created by guozhaokun on 2024/8/30 11:21.
 */
public enum State {
	/** raft 论文中的 Candidate */
	CANDIDATE,
	/** raft 论文中的 Leading */
	LEADING,
	/** raft 论文中的 Following */
	FOLLOWING,
	/** 扩展：未初始化的状态 */
	UNINITIALIZED,
	/** 扩展：节点出现了错误 */
	ERROR,
	/** 扩展：节点正在停止工作 */
	SHUTTING,
	/** 扩展：节点已经停止工作 */
	SHUTDOWN;

	/** 判断节点是否处于活跃状态 */
	public boolean isActive() {
		return this.ordinal() < UNINITIALIZED.ordinal();
	}
}
